/**
 * Multiworker 2000
 * @brief Programa de entrada
 * @author André Luiz de Oliveira Vasconcelos
 * @file main.cpp
 * @date 2011
 */

#include <QApplication>
#include <QtGui>
#include <QSplashScreen>
#include <QString>
#include <QDebug>
#include "mainwindow.h"
#include "config.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QTextCodec::setCodecForTr (QTextCodec:: codecForName ("UTF-8"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));

    // Janela principal da aplicação
    MainWindow w;

    app.processEvents();

    // Mostra splash screen enquanto conecta ao banco de dados
    // e executa operações de inicialização
    QPixmap pixmap(":img/money.jpg");
    QSplashScreen splash(pixmap);
    splash.show();

    Mensagem mensagem;

    // Carrega configuração
    splash.showMessage(QObject::tr("Carregando configuração do sistema..."), Qt::AlignBottom);
    w.config.setNomeArquivo("config.xml");
    mensagem = w.config.lerArquivo();
    if(mensagem.erro()){
        qDebug() << mensagem.getTexto();
        return 1;
    }

    // Conecta com o banco de dados
    //splash.showMessage(QObject::tr("Conectando ao banco de dados..."), Qt::AlignBottom);
    //mensagem = w.config.conexao.open();
    //if(mensagem.erro()){
    //    qDebug() << mensagem.getTexto();
    //    return 2;
    //}

    // Solicita dados para login
    splash.showMessage(QObject::tr("Acesso ao sistema..."), Qt::AlignBottom);


    // Fecha splash screen
    splash.finish(&w);

    // Mostra tela principal
    w.show();
    
    return app.exec();
}

